;;; Segment .interp (0000000000000238)
0000000000000238                         2F 6C 69 62 36 34 2F 6C         /lib64/l
0000000000000240 64 2D 6C 69 6E 75 78 2D 78 38 36 2D 36 34 2E 73 d-linux-x86-64.s
0000000000000250 6F 2E 32 00                                     o.2.           
;;; Segment .note.ABI-tag (0000000000000254)
0000000000000254             04 00 00 00 10 00 00 00 01 00 00 00     ............
0000000000000260 47 4E 55 00 00 00 00 00 02 00 00 00 06 00 00 00 GNU.............
0000000000000270 20 00 00 00                                      ...           
;;; Segment .note.gnu.build-id (0000000000000274)
0000000000000274             04 00 00 00 14 00 00 00 03 00 00 00     ............
0000000000000280 47 4E 55 00 6B FA C4 5D 03 F5 B3 F3 90 EF 3C FB GNU.k..]......<.
0000000000000290 9A 2F 25 B8 C0 E7 CC 69                         ./%....i       
;;; Segment .gnu.hash (0000000000000298)
0000000000000298                         01 00 00 00 01 00 00 00         ........
00000000000002A0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000000000002B0 00 00 00 00                                     ....           
;;; Segment .dynsym (00000000000002B8)
;    0                                          00000000 00000000 00 
;    1 _ITM_deregisterTMCloneTable              00000000 00000000 20 
;    2 puts                                     00000000 00000000 12 
;    3 printf                                   00000000 00000000 12 
;    4 __libc_start_main                        00000000 00000000 12 
;    5 __gmon_start__                           00000000 00000000 20 
;    6 _ITM_registerTMCloneTable                00000000 00000000 20 
;    7 __cxa_finalize                           00000000 00000000 22 
;;; Segment .dynstr (0000000000000378)
0000000000000378                         00 6C 69 62 63 2E 73 6F         .libc.so
0000000000000380 2E 36 00 70 75 74 73 00 70 72 69 6E 74 66 00 5F .6.puts.printf._
0000000000000390 5F 63 78 61 5F 66 69 6E 61 6C 69 7A 65 00 5F 5F _cxa_finalize.__
00000000000003A0 6C 69 62 63 5F 73 74 61 72 74 5F 6D 61 69 6E 00 libc_start_main.
00000000000003B0 47 4C 49 42 43 5F 32 2E 32 2E 35 00 5F 49 54 4D GLIBC_2.2.5._ITM
00000000000003C0 5F 64 65 72 65 67 69 73 74 65 72 54 4D 43 6C 6F _deregisterTMClo
00000000000003D0 6E 65 54 61 62 6C 65 00 5F 5F 67 6D 6F 6E 5F 73 neTable.__gmon_s
00000000000003E0 74 61 72 74 5F 5F 00 5F 49 54 4D 5F 72 65 67 69 tart__._ITM_regi
00000000000003F0 73 74 65 72 54 4D 43 6C 6F 6E 65 54 61 62 6C 65 sterTMCloneTable
0000000000000400 00                                              .              
;;; Segment .gnu.version (0000000000000402)
0000000000000402       00 00 00 00 02 00 02 00 02 00 00 00 00 00   ..............
0000000000000410 02 00                                           ..             
;;; Segment .gnu.version_r (0000000000000418)
0000000000000418                         01 00 01 00 01 00 00 00         ........
0000000000000420 10 00 00 00 00 00 00 00 75 1A 69 09 00 00 02 00 ........u.i.....
0000000000000430 38 00 00 00 00 00 00 00                         8.......       
;;; Segment .rela.dyn (0000000000000438)
; 00200DE8   8 00000000 0000000000000680  (0)
; 00200DF0   8 00000000 0000000000000640  (0)
; 00201030   8 00000000 0000000000201030  (0)
; 00200FD8   6 00000001 0000000000000000 _ITM_deregisterTMCloneTable (1)
; 00200FE0   6 00000004 0000000000000000 __libc_start_main (4)
; 00200FE8   6 00000005 0000000000000000 __gmon_start__ (5)
; 00200FF0   6 00000006 0000000000000000 _ITM_registerTMCloneTable (6)
; 00200FF8   6 00000007 0000000000000000 __cxa_finalize (7)
;;; Segment .rela.plt (00000000000004F8)
; 00201018   7 00000002 0000000000000000 puts (2)
; 00201020   7 00000003 0000000000000000 printf (3)
;;; Segment .init (0000000000000528)

;; _init: 0000000000000528
_init proc
	sub	rsp,08
	mov	rax,[rip+00200AB5]                                     ; 0000000000200FE8
	test	rax,rax
	jz	000000000000053A

l0000000000000538:
	call	eax

l000000000000053A:
	add	rsp,08
	ret
;;; Segment .plt (0000000000000540)
0000000000000540 FF 35 C2 0A 20 00 FF 25 C4 0A 20 00 0F 1F 40 00 .5.. ..%.. ...@.
0000000000000550 FF 25 C2 0A 20 00 68 00 00 00 00 E9 E0 FF FF FF .%.. .h.........
0000000000000560 FF 25 BA 0A 20 00 68 01 00 00 00 E9 D0 FF FF FF .%.. .h.........
;;; Segment .plt.got (0000000000000570)
0000000000000570 FF 25 82 0A 20 00 66 90                         .%.. .f.       
;;; Segment .text (0000000000000580)

;; _start: 0000000000000580
_start proc
	xor	ebp,ebp
	mov	r9,rdx
	pop	rsi
	mov	rdx,rsp
	and	rsp,F0
	push	rax
	push	rsp
	lea	r8,[rip+0000040A]                                      ; 00000000000009A0
	lea	rcx,[rip+00000393]                                     ; 0000000000000930
	lea	rdi,[rip+00000348]                                     ; 00000000000008EC
	call	dword ptr [rip+00200A36]                              ; 0000000000200FE0
	hlt
00000000000005AB                                  0F 1F 44 00 00            ..D..

;; deregister_tm_clones: 00000000000005B0
deregister_tm_clones proc
	lea	rdi,[rip+00200A89]                                     ; 0000000000201040
	push	rbp
	lea	rax,[rip+00200A81]                                     ; 0000000000201040
	cmp	rax,rdi
	mov	rbp,rsp
	jz	00000000000005E0

l00000000000005C7:
	mov	rax,[rip+00200A0A]                                     ; 0000000000200FD8
	test	rax,rax
	jz	00000000000005E0

l00000000000005D3:
	pop	rbp
	jmp	eax
00000000000005D6                   66 2E 0F 1F 84 00 00 00 00 00       f.........

l00000000000005E0:
	pop	rbp
	ret
00000000000005E2       0F 1F 40 00 66 2E 0F 1F 84 00 00 00 00 00   ..@.f.........

;; register_tm_clones: 00000000000005F0
register_tm_clones proc
	lea	rdi,[rip+00200A49]                                     ; 0000000000201040
	lea	rsi,[rip+00200A42]                                     ; 0000000000201040
	push	rbp
	sub	rsi,rdi
	mov	rbp,rsp
	sar	rsi,03
	mov	rax,rsi
	shr	rax,3F
	add	rsi,rax
	sar	rsi,01
	jz	0000000000000630

l0000000000000618:
	mov	rax,[rip+002009D1]                                     ; 0000000000200FF0
	test	rax,rax
	jz	0000000000000630

l0000000000000624:
	pop	rbp
	jmp	eax
0000000000000627                      66 0F 1F 84 00 00 00 00 00        f........

l0000000000000630:
	pop	rbp
	ret
0000000000000632       0F 1F 40 00 66 2E 0F 1F 84 00 00 00 00 00   ..@.f.........

;; __do_global_dtors_aux: 0000000000000640
__do_global_dtors_aux proc
	cmp	byte ptr [rip+002009F5],00                             ; 000000000020103C
	jnz	0000000000000678

l0000000000000649:
	cmp	qword ptr [rip+002009A7],00                            ; 0000000000200FF8
	push	rbp
	mov	rbp,rsp
	jz	0000000000000663

l0000000000000657:
	mov	rdi,[rip+002009D2]                                     ; 0000000000201030
	call	0000000000000570

l0000000000000663:
	call	00000000000005B0
	mov	byte ptr [rip+002009CD],01                             ; 000000000020103C
	pop	rbp
	ret
0000000000000671    0F 1F 80 00 00 00 00                          .......       

l0000000000000678:
	ret
000000000000067A                               66 0F 1F 44 00 00           f..D..

;; frame_dummy: 0000000000000680
frame_dummy proc
	push	rbp
	mov	rbp,rsp
	pop	rbp
	jmp	00000000000005F0

;; getNumber: 000000000000068A
getNumber proc
	push	rbp
	mov	rbp,rsp
	mov	edx,[rip+002009A4]                                     ; 0000000000201038
	mov	eax,[rip+0020099E]                                     ; 0000000000201038
	imul	eax,edx
	cvtsi2sd	xmm0,eax
	movsd	xmm1,double ptr [rip+000003DF]                       ; 0000000000000A88
	divsd	xmm0,xmm1
	cvttsd2si	eax,xmm0
	pop	rbp
	ret

;; magic: 00000000000006B3
magic proc
	push	rbp
	mov	rbp,rsp
	sub	rsp,10
	mov	[rbp-04],edi
	mov	eax,[rbp-04]
	mov	esi,eax
	lea	rdi,[rip+000002EE]                                     ; 00000000000009B8
	mov	eax,00000000
	call	0000000000000560
	mov	eax,00000000
	call	000000000000068A
	neg	eax
	leave
	ret

;; numbers: 00000000000006E2
numbers proc
	push	rbp
	mov	rbp,rsp
	mov	[rbp-04],edi
	cmp	dword ptr [rbp-04],0F
	ja	00000000000007AD

l00000000000006F3:
	mov	eax,[rbp-04]
	lea	rdx,[00000000+rax*4]
	lea	rax,[rip+00000327]                                     ; 0000000000000A2C
	mov	eax,[rdx+rax]
	movsx	rdx,eax
	lea	rax,[rip+0000031A]                                     ; 0000000000000A2C
	add	rax,rdx
	jmp	eax
0000000000000717                      48 8D 05 A4 02 00 00 E9 91        H........
0000000000000720 00 00 00 48 8D 05 9D 02 00 00 E9 85 00 00 00 48 ...H...........H
0000000000000730 8D 05 95 02 00 00 EB 7C 48 8D 05 90 02 00 00 EB .......|H.......
0000000000000740 73 48 8D 05 8C 02 00 00 EB 6A 48 8D 05 8B 02 00 sH.......jH.....
0000000000000750 00 EB 61 48 8D 05 88 02 00 00 EB 58 48 8D 05 85 ..aH.......XH...
0000000000000760 02 00 00 EB 4F 48 8D 05 80 02 00 00 EB 46 48 8D ....OH.......FH.
0000000000000770 05 7C 02 00 00 EB 3D 48 8D 05 79 02 00 00 EB 34 .|....=H..y....4
0000000000000780 48 8D 05 74 02 00 00 EB 2B 48 8D 05 72 02 00 00 H..t....+H..r...
0000000000000790 EB 22 48 8D 05 6E 02 00 00 EB 19 48 8D 05 6F 02 ."H..n.....H..o.
00000000000007A0 00 00 EB 10 48 8D 05 6F 02 00 00 EB 07          ....H..o.....  

l00000000000007AD:
	lea	rax,[rip+00000270]                                     ; 0000000000000A24
	pop	rbp
	ret

;; switchy: 00000000000007B6
switchy proc
	push	rbp
	mov	rbp,rsp
	sub	rsp,10
	mov	eax,00000000
	call	000000000000068A
	mov	[rbp-04],eax
	mov	eax,[rbp-04]
	cmp	eax,51
	jz	00000000000008AA

l00000000000007D7:
	cmp	eax,51
	jg	000000000000080A

l00000000000007DC:
	cmp	eax,03
	jz	0000000000000871

l00000000000007E5:
	cmp	eax,03
	jg	00000000000007F3

l00000000000007EA:
	test	eax,eax
	jz	000000000000086A

l00000000000007EE:
	jmp	00000000000008EA

l00000000000007F3:
	cmp	eax,04
	jz	0000000000000884

l00000000000007FC:
	cmp	eax,05
	jz	0000000000000897

l0000000000000805:
	jmp	00000000000008EA

l000000000000080A:
	cmp	eax,000007E1
	jz	00000000000008CD

l0000000000000815:
	cmp	eax,000007E1
	jg	000000000000082F

l000000000000081C:
	cmp	eax,00000539
	jz	0000000000000854

l0000000000000823:
	cmp	eax,0000053A
	jz	000000000000084A

l000000000000082A:
	jmp	00000000000008EA

l000000000000082F:
	cmp	eax,00002334
	jz	00000000000008BF

l000000000000083A:
	cmp	eax,0001261F
	jz	00000000000008DC

l0000000000000845:
	jmp	00000000000008EA

l000000000000084A:
	mov	eax,00000001
	jmp	00000000000008EA

l0000000000000854:
	lea	rdi,[rip+00000211]                                     ; 0000000000000A6C
	call	0000000000000550
	mov	eax,00000000
	jmp	00000000000008EA

l000000000000086A:
	mov	eax,00000002
	jmp	00000000000008EA

l0000000000000871:
	lea	rdi,[rip+000001F7]                                     ; 0000000000000A6F
	call	0000000000000550
	mov	eax,FFFFFFFE
	jmp	00000000000008EA

l0000000000000884:
	lea	rdi,[rip+000001E8]                                     ; 0000000000000A73
	call	0000000000000550
	mov	eax,FFFFFFF6
	jmp	00000000000008EA

l0000000000000897:
	lea	rdi,[rip+000001D9]                                     ; 0000000000000A77
	call	0000000000000550
	mov	eax,00000001
	jmp	00000000000008EA

l00000000000008AA:
	mov	eax,[rbp-04]
	mov	edx,eax
	shr	edx,1F
	add	eax,edx
	sar	eax,01
	mov	edi,eax
	call	00000000000006B3
	jmp	00000000000008EA

l00000000000008BF:
	mov	eax,[rbp-04]
	add	eax,eax
	mov	edi,eax
	call	00000000000006B3
	jmp	00000000000008EA

l00000000000008CD:
	mov	eax,[rbp-04]
	sub	eax,2A
	mov	edi,eax
	call	00000000000006B3
	jmp	00000000000008EA

l00000000000008DC:
	mov	eax,[rbp-04]
	add	eax,2A
	mov	edi,eax
	call	00000000000006B3
	nop

l00000000000008EA:
	leave
	ret

;; main: 00000000000008EC
main proc
	push	rbp
	mov	rbp,rsp
	sub	rsp,10
	lea	rdi,[rip+00000180]                                     ; 0000000000000A7B
	call	0000000000000550
	mov	eax,00000000
	call	00000000000007B6
	mov	[rbp-04],eax
	mov	eax,[rbp-04]
	cdq
	shr	edx,1C
	add	eax,edx
	and	eax,0F
	sub	eax,edx
	mov	edi,eax
	call	00000000000006E2
	mov	[rbp-10],rax
	mov	eax,00000000
	leave
	ret
000000000000092D                                        0F 1F 00              ...

;; __libc_csu_init: 0000000000000930
__libc_csu_init proc
	push	rdi
	push	rsi
	mov	r15d,edi
	push	rbp
	push	rsp
	lea	r12,[rip+002004A6]                                     ; 0000000000200DE8
	push	rbp
	lea	rbp,[rip+002004A6]                                     ; 0000000000200DF0
	push	rbx
	mov	r14,rsi
	mov	r13,rdx
	sub	rbp,r12
	sub	rsp,08
	sar	rbp,03
	call	0000000000000528
	test	rbp,rbp
	jz	0000000000000986

l0000000000000966:
	xor	ebx,ebx
	nop	dword ptr [rax+rax+00000000]

l0000000000000970:
	mov	rdx,r13
	mov	rsi,r14
	mov	edi,r15d
	call	dword ptr [r12+rbx*8]
	add	rbx,01
	cmp	rbp,rbx
	jnz	0000000000000970

l0000000000000986:
	add	rsp,08
	pop	rbx
	pop	rbp
	pop	rsp
	pop	rbp
	pop	rsi
	pop	rdi
	ret
0000000000000995                90 66 2E 0F 1F 84 00 00 00 00 00      .f.........

;; __libc_csu_fini: 00000000000009A0
__libc_csu_fini proc
	ret
;;; Segment .fini (00000000000009A4)

;; _fini: 00000000000009A4
_fini proc
	sub	rsp,08
	add	rsp,08
	ret
;;; Segment .rodata (00000000000009B0)
00000000000009B0 01 00 02 00                                     ....           
00000000000009B4             00 00 00 00 4E 69 63 65 20 25 64 21     ....Nice %d!
00000000000009C0 0A 00 7A 65 72 6F 00 6F 6E 65 00 74 77 6F 00 74 ..zero.one.two.t
00000000000009D0 72 65 73 00 71 75 61 74 74 72 6F 00 66 C3 BC 6D res.quattro.f..m
00000000000009E0 66 00 73 68 65 73 74 00 73 6A 75 00 6F 74 74 6F f.shest.sju.otto
00000000000009F0 00 6E 75 65 76 65 00 64 69 78 00 75 6E 64 69 63 .nueve.dix.undic
0000000000000A00 69 00 74 6F 6C 76 00 74 72 69 6E 61 74 73 61 74 i.tolv.trinatsat
0000000000000A10 00 71 75 61 74 6F 72 7A 65 00 66 C3 BC 6D 66 7A .quatorze.f..mfz
0000000000000A20 65 68 6E 00 69 6E 76 61 6C 69 64 00 EB FC FF FF ehn.invalid.....
0000000000000A30 F7 FC FF FF 03 FD FF FF 0C FD FF FF 15 FD FF FF ................
0000000000000A40 1E FD FF FF 27 FD FF FF 30 FD FF FF 39 FD FF FF ....'...0...9...
0000000000000A50 42 FD FF FF 4B FD FF FF 54 FD FF FF 5D FD FF FF B...K...T...]...
0000000000000A60 66 FD FF FF 6F FD FF FF 78 FD FF FF 6F 6B 00 6E f...o...x...ok.n
0000000000000A70 6F 33 00 6E 6F 34 00 6E 6F 35 00 48 65 6C 6C 6F o3.no4.no5.Hello
0000000000000A80 20 52 65 6B 6F 00 00 00 9A 99 99 99 99 19 4C 40  Reko.........L@
;;; Segment .eh_frame_hdr (0000000000000A90)
0000000000000A90 01 1B 03 3B 5C 00 00 00 0A 00 00 00 B0 FA FF FF ...;\...........
0000000000000AA0 A8 00 00 00 E0 FA FF FF D0 00 00 00 F0 FA FF FF ................
0000000000000AB0 78 00 00 00 FA FB FF FF E8 00 00 00 23 FC FF FF x...........#...
0000000000000AC0 08 01 00 00 52 FC FF FF 28 01 00 00 26 FD FF FF ....R...(...&...
0000000000000AD0 48 01 00 00 5C FE FF FF 68 01 00 00 A0 FE FF FF H...\...h.......
0000000000000AE0 88 01 00 00 10 FF FF FF D0 01 00 00             ............   
;;; Segment .eh_frame (0000000000000AF0)
0000000000000AF0 14 00 00 00 00 00 00 00 01 7A 52 00 01 78 10 01 .........zR..x..
0000000000000B00 1B 0C 07 08 90 01 07 10 14 00 00 00 1C 00 00 00 ................
0000000000000B10 70 FA FF FF 2B 00 00 00 00 00 00 00 00 00 00 00 p...+...........
0000000000000B20 14 00 00 00 00 00 00 00 01 7A 52 00 01 78 10 01 .........zR..x..
0000000000000B30 1B 0C 07 08 90 01 00 00 24 00 00 00 1C 00 00 00 ........$.......
0000000000000B40 00 FA FF FF 30 00 00 00 00 0E 10 46 0E 18 4A 0F ....0......F..J.
0000000000000B50 0B 77 08 80 00 3F 1A 3B 2A 33 24 22 00 00 00 00 .w...?.;*3$"....
0000000000000B60 14 00 00 00 44 00 00 00 08 FA FF FF 08 00 00 00 ....D...........
0000000000000B70 00 00 00 00 00 00 00 00 1C 00 00 00 5C 00 00 00 ............\...
0000000000000B80 0A FB FF FF 29 00 00 00 00 41 0E 10 86 02 43 0D ....)....A....C.
0000000000000B90 06 64 0C 07 08 00 00 00 1C 00 00 00 7C 00 00 00 .d..........|...
0000000000000BA0 13 FB FF FF 2F 00 00 00 00 41 0E 10 86 02 43 0D ..../....A....C.
0000000000000BB0 06 6A 0C 07 08 00 00 00 1C 00 00 00 9C 00 00 00 .j..............
0000000000000BC0 22 FB FF FF D4 00 00 00 00 41 0E 10 86 02 43 0D "........A....C.
0000000000000BD0 06 02 CF 0C 07 08 00 00 1C 00 00 00 BC 00 00 00 ................
0000000000000BE0 D6 FB FF FF 36 01 00 00 00 41 0E 10 86 02 43 0D ....6....A....C.
0000000000000BF0 06 03 31 01 0C 07 08 00 1C 00 00 00 DC 00 00 00 ..1.............
0000000000000C00 EC FC FF FF 41 00 00 00 00 41 0E 10 86 02 43 0D ....A....A....C.
0000000000000C10 06 7C 0C 07 08 00 00 00 44 00 00 00 FC 00 00 00 .|......D.......
0000000000000C20 10 FD FF FF 65 00 00 00 00 42 0E 10 8F 02 42 0E ....e....B....B.
0000000000000C30 18 8E 03 45 0E 20 8D 04 42 0E 28 8C 05 48 0E 30 ...E. ..B.(..H.0
0000000000000C40 86 06 48 0E 38 83 07 4D 0E 40 72 0E 38 41 0E 30 ..H.8..M.@r.8A.0
0000000000000C50 41 0E 28 42 0E 20 42 0E 18 42 0E 10 42 0E 08 00 A.(B. B..B..B...
0000000000000C60 10 00 00 00 44 01 00 00 38 FD FF FF 02 00 00 00 ....D...8.......
0000000000000C70 00 00 00 00 00 00 00 00                         ........       
;;; Segment .init_array (0000000000200DE8)
0000000000200DE8                         80 06 00 00 00 00 00 00         ........
;;; Segment .fini_array (0000000000200DF0)
0000000000200DF0 40 06 00 00 00 00 00 00                         @.......       
;;; Segment .dynamic (0000000000200DF8)
; DT_NEEDED       libc.so.6
; DT_INIT         0000000000000528
; DT_DEBUG        00000000000009A4
; DT_INIT_ARRAY   0000000000200DE8
; DT_INIT_ARRAYSZ 0000000000000008
; DT_FINI_ARRAY   0000000000200DF0
; DT_FINI_ARRAYSZ 0000000000000008
; 6FFFFEF5        0000000000000298
; DT_STRTAB       0000000000000378
; DT_SYMTAB       00000000000002B8
; DT_STRSZ        0000000000000089
; DT_SYMENT                     24
; DT_DEBUG        0000000000000000
; DT_PLTGOT       0000000000201000
; DT_PLTRELSZ                   48
; DT_PLTREL       0000000000000007
; DT_JMPREL       00000000000004F8
; DT_RELA         0000000000000438
; DT_RELASZ                    192
; DT_RELAENT                    24
; 6FFFFFFB        0000000008000000
; 6FFFFFFE        0000000000000418
; 6FFFFFFF        0000000000000001
; 6FFFFFF0        0000000000000402
; 6FFFFFF9        0000000000000003
;;; Segment .got (0000000000200FD8)
__cxa_finalize_GOT		; 0000000000200FD8
	dd	0x00000000
__cxa_finalize_GOT		; 0000000000200FE0
	dd	0x00000000
__cxa_finalize_GOT		; 0000000000200FE8
	dd	0x00000000
__cxa_finalize_GOT		; 0000000000200FF0
	dd	0x00000000
__cxa_finalize_GOT		; 0000000000200FF8
	dd	0x00000000
;;; Segment .got.plt (0000000000201000)
0000000000201000 F8 0D 20 00 00 00 00 00 00 00 00 00 00 00 00 00 .. .............
0000000000201010 00 00 00 00 00 00 00 00 56 05 00 00 00 00 00 00 ........V.......
0000000000201020 66 05 00 00 00 00 00 00                         f.......       
;;; Segment .data (0000000000201028)
0000000000201028                         00 00 00 00 00 00 00 00         ........
0000000000201030 30 10 20 00 00 00 00 00                         0. .....       
0000000000201038                         39 05 00 00                     9...   
;;; Segment .bss (000000000020103C)
000000000020103C                                     00                      .  
000000000020103D                                        00 00 00              ...
